Conventional broadcast television signals are transmitted in a data format that is used to construct individual television frames. Each frame contains video image data (i.e., pixel data) used to create images on the television screen and control information used to control the presentation of the image, such as synchronization and timing information. The Video Blanking Interval (VBI) is the upper 21 lines of a typical television frame. These VBI lines are not displayed on the television, but are instead used to carry the television control information. Up to ten VBI lines can be used for transmission of data separate from and in addition to the television image control information. Additionally, line 21 of the VBI is used for transmission of closed captioning information.
A standard format for sending data as part of the VBI lines is specified by the Electronic Industries Association document EIA-516 (May, 1988): "Joint EIA/CVCC Recommended Practice for Teletext: North American Basic Teletext Specification (NABTS)." The NABTS specification defines a format for dividing lengthy streams of data into fixed-length data packets. It is these data packets that are encoded into the VBI and transmitted over the broadcast network.
FIG. 1 shows a VBI-compatible data packet 20 consisting of 33 eight-bit bytes. The VBI data packet 20 comprises a data block 22, which may be up to 28 bytes in length, and a five-byte prefix or header 24. The data block 22 varies in length depending upon the size of an optional suffix or trailer 26, which follows the data block. The trailer 26 can be 0, 1, 2, or 28 bytes in length. Accordingly, the data block can be 0, 26, 27, or 28 bytes in length. Different encoders have different modes which dictate the length of the trailer 26 and hence, the length of the actual data stored in the data block 22. The optional trailer 26 provides room for specifying error detection or error detection and correction data to be used by receivers. The five-byte header 24 consists of three packet address bytes, one continuity index byte, and one packet structure byte.
Present VBI encoding and decoding technology provides a convenient and reliable method for sending data as part of the VBI of a television signal. Today, the VBI is used for transmission of a number of forms of data, including stock quotes and weather data, for example. For a number of years, it was uncommon for users to view television on their computers. More recently, though, it has become more common for users to view television signals on their computers. An increasing number of viewer/users is expected in the future. With such convergence of television viewing and computer use, it is expected that viewers will want to be able to make use of the data transmitted in the VBI easily, especially on their computers. Unfortunately, most computer applications today are not configured to be compatible with the VBI data. To receive the VBI data, application developers must specialize their products. This is particularly the case for developers building applications for a Windows.RTM.-based operating system manufactured and sold by Microsoft, as such applications must be configured to call specialized functions that are not a standard part of the Windows.RTM. operating system.
It would be beneficial to provide a more global approach to transmitting VBI data so that it can be easily used in computer applications without calling specialized functions.
In the network environment, computer applications use standard sets of Application Programming Interfaces (APIs) to transmit and receive data over networks and over the Internet. For example, applications designed to run on Windows.RTM.-based operating systems employ a standard set of APIs that are defined in the Windows Sockets Specification, a well known specification. These APIs have been defined by industry committees and are widely in use. The Sockets APIs provide a network independent way to send and receive data, no matter what the underlying computer network (e.g., Ethernet, asynchronous transfer mode (ATM), satellite, etc.). Computer applications do not need to be specially written to receive data from a particular network. Instead, a developer writes code for an application that interfaces to the Windows(.RTM. Sockets API, enabling the application to send and receive data over a number of different networks supported by the computer's hardware.
One common and widely used type of network data is called Internet Protocol (IP) data. IP data defines a standard format for carrying data over essentially any underlying network, including the Ethernet and the Internet. The IP standard defines a packet used to encapsulate the data, and IP data is always encapsulated in this packet, regardless of the transmission network.
The inventor has conceived of a technique to repackage network data, such as IP data, into a VBI-compatible format which can be transmitted as part of a traditional broadcast television signal. At the receiver, the network data is extracted from the VBI signal and passed to the computer application through a standard set of existing APIs, rather than through proprietary or non-standard functions known only to single monolithic client applications.